# list集合 --- 有序 ，可变 --- 用[]
list01 = [11, 22, 33, 44, 55, 66]
list01[3] = 88
print(list01)

# tuple集合 --- 有序，不可变 / 不可修改的list集合 --- 用（）
tuple01 = (11, 22, 33, 44, 55, 66)
print(tuple01[3])


# set集合 --- 无序，不重复  -- 用{}
set01 = {11, 22, 33, 44, 55, 66, 11, 22}
print(set01)
# 所有元素-->hash值 --> hash值排序 ---》每次打印的先后顺序一样

# 需求：生成10个50-100的不重复的随机值
import random

def get_random_numbers(start,end,number):
    # 定义一个容器
    set01 = set()
    # 循环
    while len(set01) < number:
        set01.add(random.randint(start,end))

    # 返回
    return set01


if __name__ == '__main__':

    print(get_random_numbers(50,100,10))



# dict --- > 其实就是一个特殊的set--> 无序的不能重复的(key-value)的集合

dict01 = {}
dict01['sno'] = '95001'
dict01['name'] = '张三'
dict01['age'] = 30
dict01['name'] = '李四'
dict01['number'] = 30
print(dict01)

# dict的值存储非常灵活

# 创建字典直接初始化
dict_student = {'sno': 95001, 'name': '张三'}
# 创建一个空的，然后逐一添加元素
dict_student = {}
dict_student['sn'] = 95001
dict_student['name'] = '张三'
dict_student = {'sno': 95001, 'name': '张三', 'gender': '男'}
# 访问某一个元素
print(dict_student['gender'])
# 访问不存在的key
# print(dict_student['birthday'])
# 此时系统会出现异常，解决的办法有两个setdefault()和get()
print(dict_student.setdefault('birthday', None))
print(dict_student.get('name'))
# 删除某一个key的元素
dict_student.pop('name')
# 如果删除的key不存在，同样也会出现异常，
dict_student.pop('birthday',None)
# 删除最后一个元素
dict_student.popitem()


# 定义字典
dict01 = {'sno': 95001, 'name': '陈军', 'gender': '男','brithday': '1990-10-10'}
# 遍历的方法01：for --in--(默认就是遍历keys())
for key in dict01:
    print(dict01[key])

# 遍历的方法02：for --in-- (和第一种是等价的)
for key in dict01.keys():
    print(key, dict01[key])

# 遍历的方法03：for ---in---
for (key, val) in dict01.items():
    print(key, val)

# 只要遍历值
for val in dict01.values():
    print(val)